<!DOCTYPE html>
<!-- saved from url=(0041)http://c.biancheng.net/view/vip_8118.html -->
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" async="" charset="utf-8" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/core.php"></script><script async="" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/click.php"></script>

<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
<!-- 启用Chromium高速渲染模式 -->
<meta name="renderer" content="webkit">
<meta name="force-rendering" content="webkit">
<!-- 禁止百度转码 -->
<meta name="applicable-device" content="pc,mobile">
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
<!-- 禁止识别电话号码 -->
<meta name="format-detection" content="telephone=no">

<link rel="shortcut icon" href="http://c.biancheng.net/favicon.ico?v=1.6.72">
<link href="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/common.css" rel="stylesheet">
<title>目前主流的Java Web开发框架，初学者一定要了解！</title>
<meta name="description" content="框架（Framework）是一个提供了可重用的公共结构半成品，它为构建新的应用程序提供了极大的便利。 框架这个词最早出现在建筑领域，指在建造房屋前期构建的建筑骨架，如图1所示。">
</head>
<body>
<div id="topbar" class="clearfix">
	<ul id="product-type" class="left">
		<li>
			<a href="http://c.biancheng.net/"><span class="iconfont iconfont-home"></span>首页</a>
		</li>
		<li class="active">
			<a href="http://c.biancheng.net/sitemap/" rel="nofollow"><span class="iconfont iconfont-book"></span>教程</a>
		</li>
		<li>
			<a href="http://vip.biancheng.net/p/vip/show.php" rel="nofollow" target="_blank"><span class="iconfont iconfont-vip"></span>VIP会员</a>
		</li>
		<li>
			<a href="http://vip.biancheng.net/p/q2a/show.php" rel="nofollow" target="_blank"><span class="iconfont iconfont-q2a"></span>一对一答疑</a>
		</li>
		<li>
			<a href="http://fudao.biancheng.net/" rel="nofollow" target="_blank"><span class="iconfont iconfont-fudao"></span>辅导班</a>
		</li>
	</ul>
</div>
<div id="header" class="clearfix">
	<a id="logo" class="left" href="http://c.biancheng.net/">
		<img height="26" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/logo.png" alt="C语言中文网">
	</a>
	<ul id="nav-main" class="hover-none left clearfix">
		<li class="wap-yes"><a href="http://c.biancheng.net/">首页</a></li>
		<li><a href="http://c.biancheng.net/c/">C语言教程</a></li>
		<li><a href="http://c.biancheng.net/cplus/">C++教程</a></li>
		<li><a href="http://c.biancheng.net/python/">Python教程</a></li>
		<li><a href="http://c.biancheng.net/java/">Java教程</a></li>
		<li><a href="http://c.biancheng.net/linux_tutorial/">Linux入门</a></li>
		<li><a href="http://c.biancheng.net/sitemap/" title="网站地图">更多&gt;&gt;</a></li>
	</ul>
	<span id="sidebar-toggle" class="toggle-btn" toggle-target="#sidebar">目录 <span class="glyphicon"></span></span>

	<a href="http://vip.biancheng.net/?from=topbar" class="user-info glyphicon glyphicon-user hover-none" target="_blank" rel="nofollow" title="用户中心"></a>
</div>
<div id="main" class="clearfix">
	<div id="sidebar" class="toggle-target">
	<div id="contents">
		<dt><span class="glyphicon glyphicon-option-vertical" aria-hidden="true"></span><a href="http://c.biancheng.net/java/">Java教程</a></dt>
		<dd class="this"> <span class="channel-num">1</span> <a href="http://c.biancheng.net/java/10/">Java入门基础及环境搭建</a> </dd><dl class="dl-sub"><dd>1.1 <a href="http://c.biancheng.net/view/1282.html">Java是什么</a></dd><dd>1.2 <a href="http://c.biancheng.net/view/vip_7043.html">Java程序员工资高么？就业方向有哪些？</a><span class="glyphicon glyphicon-usd"></span></dd><dd>1.3 <a href="http://c.biancheng.net/view/1286.html">Java JDK下载与安装教程</a></dd><dd>1.4 <a href="http://c.biancheng.net/view/1290.html">Java JDK环境变量配置</a></dd><dd>1.5 <a href="http://c.biancheng.net/view/5611.html">使用记事本编写运行Java程序</a></dd><dd>1.6 <a href="http://c.biancheng.net/view/1296.html">Java编程规范</a></dd><dd>1.7 <a href="http://c.biancheng.net/view/5607.html">Java程序的运行过程</a></dd><dd>1.8 <a href="http://c.biancheng.net/view/vip_7044.html">Java是如何实现跨平台的，原理是什么？</a><span class="glyphicon glyphicon-usd"></span></dd><dd>1.9 <a href="http://c.biancheng.net/view/5591.html">Java中JVM、JRE和JDK三者有什么区别和联系？</a></dd><dd>1.10 <a href="http://c.biancheng.net/view/vip_7045.html">Java和C/C++到底有什么关系，它们有什么区别？</a><span class="glyphicon glyphicon-usd"></span></dd><dd>1.11 <a href="http://c.biancheng.net/view/5637.html">Java开发工具</a></dd><dd>1.12 <a href="http://c.biancheng.net/view/1298.html">Java Eclipse下载安装教程</a></dd><dd>1.13 <a href="http://c.biancheng.net/view/5631.html">使用Eclipse开发第一个Java程序</a></dd><dd>1.14 <a href="http://c.biancheng.net/view/1307.html">Java修改Eclipse编辑器字体大小</a></dd><dd>1.15 <a href="http://c.biancheng.net/view/1311.html">Java Eclipse如何调试代码</a></dd><dd>1.16 <a href="http://c.biancheng.net/view/5601.html">Eclipse快捷键大全</a></dd><dd>1.17 <a href="http://c.biancheng.net/view/5644.html">Java初学者容易犯的错误</a></dd><dd>1.18 <a href="http://c.biancheng.net/view/vip_7046.html">掌握这几个方法，学习Java事半功倍！</a><span class="glyphicon glyphicon-usd"></span></dd><dd>1.19 <a href="http://c.biancheng.net/view/5624.html">Java程序员学习路线</a></dd><dd class="active">1.20 <a href="http://c.biancheng.net/view/vip_8118.html">目前主流的Java Web开发框架，初学者一定要了解！</a><span class="glyphicon glyphicon-usd"></span></dd></dl>
			<dd>
				<span class="channel-num">2</span>
				<a href="http://c.biancheng.net/java/20/">Java程序设计基础</a>
			</dd>
		
			<dd>
				<span class="channel-num">3</span>
				<a href="http://c.biancheng.net/java/30/">Java流程控制语句</a>
			</dd>
		
			<dd>
				<span class="channel-num">4</span>
				<a href="http://c.biancheng.net/java/40/">Java字符串处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">5</span>
				<a href="http://c.biancheng.net/java/50/">Java数字和日期处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">6</span>
				<a href="http://c.biancheng.net/java/60/">Java内置包装类</a>
			</dd>
		
			<dd>
				<span class="channel-num">7</span>
				<a href="http://c.biancheng.net/java/70/">Java数组处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">8</span>
				<a href="http://c.biancheng.net/java/80/">Java类和对象</a>
			</dd>
		
			<dd>
				<span class="channel-num">9</span>
				<a href="http://c.biancheng.net/java/90/">Java继承和多态</a>
			</dd>
		
			<dd>
				<span class="channel-num">10</span>
				<a href="http://c.biancheng.net/java/100/">Java异常处理</a>
			</dd>
		
			<dd>
				<span class="channel-num">11</span>
				<a href="http://c.biancheng.net/java/110/">Java集合、泛型和枚举</a>
			</dd>
		
			<dd>
				<span class="channel-num">12</span>
				<a href="http://c.biancheng.net/java/120/">Java反射机制</a>
			</dd>
		
			<dd>
				<span class="channel-num">13</span>
				<a href="http://c.biancheng.net/java/130/">Java输入/输出流</a>
			</dd>
		
			<dd>
				<span class="channel-num">14</span>
				<a href="http://c.biancheng.net/java/java/135/">Java注解</a>
			</dd>
		
	</div>
</div>
	<div id="article-wrap">
		<div id="article">
			<div class="arc-info">
	<span class="position"><span class="glyphicon glyphicon-map-marker"></span> <a href="http://c.biancheng.net/">首页</a> &gt; <a href="http://c.biancheng.net/java/">Java教程</a> &gt; <a href="http://c.biancheng.net/java/10/">Java入门基础及环境搭建</a></span>
	<span class="read-num">阅读：12,668</span>
</div>

<div id="ad-position-bottom"></div>
			<h1>目前主流的Java Web开发框架，初学者一定要了解！</h1>
			<div class="pre-next-page clearfix">
                    <span class="pre left"><span class="icon">&lt;</span> <span class="text-brief text-brief-pre">上一页</span><a href="http://c.biancheng.net/view/5624.html">Java程序员学习路线</a></span>
                    <span class="next right"><a href="http://c.biancheng.net/java/20/">Java程序设计基础</a><span class="text-brief text-brief-next">下一页</span> <span class="icon">&gt;</span></span>
                </div>
			<div id="ad-arc-top"><p class="pic"></p><p class="text" adid="java-1v1q2a"><a href="http://c.biancheng.net/view/7552.html" target="_blank" style="color: #D33428;">C语言中文网推出辅导班啦，包括<span style="color: #008000;">「C语言辅导班、C++辅导班、算法/数据结构辅导班」</span>，全部都是一对一教学：一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线，随时响应！</a></p></div>
			<div id="arc-body">框架（Framework）是一个提供了可重用的公共结构半成品，它为构建新的应用程序提供了极大的便利。<br>
<br>
“框架”这个词最早出现在建筑领域，指在建造房屋前期构建的建筑骨架，如图1所示。<br>
<br>
<div style="text-align: center;">
	<img alt="房子的框架" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/1-200G414513b24.jpg"><br>
	图1：房子的框架</div>
<br>
对于应用程序来说，“框架”就是应用程序的骨架，开发者可以在这个骨架上搭建符合自己需求的应用系统；框架凝结着前人的经验和智慧，使用这些框架就等于站在了巨人的肩膀上。<br>
<br>
Rickard Oberg（WebWork 的开发者和 JBoss 的创始人之一）说过：“框架的强大之处不是源自它能让你做什么，而是它不能让你做什么。”Rickard 强调框架另一个层面的含义：框架能使混乱的内容变得结构化。如果没有框架，一千个人将写出一千种 Servlet+JavaBean+JSP 的代码，而框架保证了程序结构风格的统一。<br>
<br>
从企业的角度来说，框架也降低了人员培训和软件维护的成本。框架在结构统一和创造力之间维持着一个合适的平衡。
<h2>
	主流 Java Web 开发框架</h2>
<h4>
	1) Spring 框架</h4>
Spring 框架是一个轻量级的框架，渗透了 Java EE 技术的方方面面。Spring 框架是由于软件开发的复杂性而创建的，是一个开源框架。<br>
<br>
Spring 框架的用途不仅限于服务器端的开发，从简单性、可测试性和松耦合性角度而言，绝大部分 Java 应用都可以从 Spring 框架中受益。<br>
<br>
对 Spring 框架的几点说明：
<ul>
	<li>
		目的：解决企业应用开发的复杂性。</li>
	<li>
		目标：Java EE 技术更容易使用，并促进良好编程习惯的养成。</li>
	<li>
		功能：使用基本的 JavaBean 代替 EJB，并提供更多的企业应用功能。</li>
	<li>
		范围：任何 Java 应用。</li>
</ul>
<br>
Spring 框架是一个轻量级控制反转（IoC）和面向切面（AOP）的容器框架，它主要作为依赖注入容器和 AOP 实现存在，还提供了声明式事务、对 DAO 层的支持等简化开发的功能。<br>
<br>
Spring 框架可以很方便地与 Spring MVC、Struts 2、MyBatis、Hibernate 等框架集成，其中大名鼎鼎的 SSM 集成框架指的就是基于 Spring MVC + Spring + MyBatis 的技术框架，使用这个集成框架能使应用程序更加健壮、稳固、轻巧和优雅，这也是当前流行的 Java Web 技术框架。<br>
<br>
Spring 框架官网：<a href="https://spring.io/" target="_blank">https://spring.io/</a><br>
<h4>
	2) Spring MVC 框架</h4>
Spring MVC 框架属于 SpringFrameWork 的后续产品，已经融合在 Spring Web Flow 中，是结构清晰的 MVC Model2 的实现。<br>
<br>
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块，并且拥有高度的可配置性，支持多种视图技术。它还可以进行定制化开发，使用相当灵活。<br>
<br>
此外，Spring 框架整合 Spring MVC 框架是无缝集成，这是一个高性能的架构模式，已越来越广泛地应用于互联网应用的开发中。当使用 Spring 框架进行 Web 开发时，可以选择 Spring MVC 框架或集成其他 MVC 的开发框架，如 Struts 1（现在一般不用）、Struts 2（一般老项目使用）等。
<h4>
	3) MyBatis 框架</h4>
MyBatis 框架是一个优秀的数据持久层框架，可在实体类和 SQL 语句之间建立映射关系，是一种半自动化的 ORM 实现。<br>
<br>
Mybatis 的封装性要低于 Hibernate 框架，且性能优异、简单易学，因此应用较为广泛。<br>
<br>
MyBatis 框架本是 Apache 的一个开源项目 iBatis，2010 年，这个项目由 Apache software foundation 迁移到 Google code，并且改名为“MyBatis”；2013 年 11 月它迁移到 Github。
<p class="tip-box">
	“iBatis”一词来源于“internet”和“abatis”的组合，它是一个基于 Java 的持久层框架，其框架包括 SQL Maps 和 Data Access Objects（DAOs）。</p>
MyBatis 3中文文档：<a href="https://mybatis.org/mybatis-3/zh/" target="_blank">https://mybatis.org/mybatis-3/zh/</a>
<h4>
	4) Hibernate 框架</h4>
Hibernate 框架不仅是一个优秀的持久化框架，也是一个开放源代码的对象关系映射框架。它对 JDBC 进行了轻量级的对象封装，将 POJO 与数据库表建立映射关系，形成一个全自动的 ORM 框架。<br>
<br>
Hibernate 框架可以自动生成 SQL 语句，且自动执行，使 Java 程序员可以随心所欲地使用对象编程思维来操纵数据库。<br>
<br>
Hibernate 框架还可以应用在任何使用 JDBC 的场合：
<ul>
	<li>
		可以在 Java 的客户端程序使用；</li>
	<li>
		也可以在 Servlet/JSP 的 Web 应用中使用；</li>
	<li>
		最具革命意义的是，Hibernate 框架可以在应用 EJB 的 Jave EE 架构中取代 CMP，以完成数据持久化的重任。</li>
</ul>
<br>
Hibernate 框架已经成为当前主流的数据库持久化框架，并被广泛应用。<br>
<br>
Hibernate 框架官网：<a href="http://hibernate.org/" target="_blank">http://hibernate.org/</a><br>
<h4>
	5) Struts 2 框架</h4>
Struts 2 框架以 WebWork 的优秀设计思想为核心，吸收 Struts 框架的部分优点，提供了一个更加简洁的基于 MVC 设计模式实现的 Web 应用程序框架，它本质上相当于一个 Servlet。<br>
<br>
在 MVC 设计模式中，Struts 2 框架作为控制器（Controller）来建立模型与视图的数据交互。<br>
<br>
Struts 2 框架是 Struts 的下一代产品，是在 Struts 1 和 WebWork 技术的基础上进行合并的创新。它采用拦截器的机制来处理用户的请求，可使业务逻辑控制器与 Servlet API 完全脱离开，所以也可以理解是 WebWork 的更新产品。<br>
<br>
Struts 2 框架充分利用了其他 MVC 框架的经验和教训，使整个框架更加清晰和灵活。<br>
<br>
Struts 框架官网：<a href="https://struts.apache.org/" target="_blank">https://struts.apache.org/</a></div>
			<div id="arc-append">
	<p>关注微信公众号「站长严长生」，在手机上阅读所有教程，随时随地都能学习。本公众号由<a class="col-link" href="http://c.biancheng.net/view/8092.html" target="_blank" rel="nofollow">C语言中文网站长</a>运营，每日更新，坚持原创，敢说真话，凡事有态度。</p>
	<p style="margin-top:12px; text-align:center;">
		<img width="180" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/qrcode_weixueyuan_original.png" alt="魏雪原二维码"><br>
		<span class="col-green">微信扫描二维码关注公众号</span>
	</p>
</div>
<!-- <p>关注微信公众号「魏雪原」，跟着<a class="col-link" href="/view/8092.html" target="_blank">站长</a>一起学习，拒绝躺平，跳出内卷，用知识完成阶级跃升：</p>
	<ul>
		<li>每日更新，坚持原创，敢说真话，凡事有态度。</li>
		<li>编程+求职+创业+营销，既有硬知识，也有软技能。</li>
		<li>手机端阅读教程，随时随地都能学习。</li>
		<li>即将绑定网站部分功能，包括注册登录、找回密码、获取下载链接等。</li>
	</ul> -->
			<div class="pre-next-page clearfix">
                    <span class="pre left"><span class="icon">&lt;</span> <span class="text-brief text-brief-pre">上一页</span><a href="http://c.biancheng.net/view/5624.html">Java程序员学习路线</a></span>
                    <span class="next right"><a href="http://c.biancheng.net/java/20/">Java程序设计基础</a><span class="text-brief text-brief-next">下一页</span> <span class="icon">&gt;</span></span>
                </div>
			<div id="ad-arc-bottom"></div>

<!-- <div id="ad-bottom-weixin" class="clearfix">
	<div class="left" style="width: 535px;">
		<p><span class="col-red">编程帮</span>，一个分享编程知识的公众号。跟着<a class="col-link" href="/cpp/about/author/" target="_blank">站长</a>一起学习，每天都有进步。</p>
		<p>通俗易懂，深入浅出，一篇文章只讲一个知识点。</p>
		<p>文章不深奥，不需要钻研，在公交、在地铁、在厕所都可以阅读，随时随地涨姿势。</p>
		<p>文章不涉及代码，不烧脑细胞，人人都可以学习。</p>
		<p>当你决定关注「编程帮」，你已然超越了90%的程序员！</p>
	</div>
	<div class="right" style="width: 150px;">
		<img width="150" src="/templets/new/images/erweima_biancheng.gif?v=1.6.72" alt="编程帮二维码" /><br />
		<span class="col-green">微信扫描二维码关注</span>
	</div>
</div> -->

<div id="nice-arcs" class="box-bottom">
	<h4>优秀文章</h4>
	<ul class="clearfix">
<li><a href="http://c.biancheng.net/mysql/subtime.html" title="MySQL SUBTIME函数：时间减法运算">MySQL SUBTIME函数：时间减法运算</a></li>
<li><a href="http://c.biancheng.net/view/2815.html" title="Java是一门什么样的编程语言？">Java是一门什么样的编程语言？</a></li>
<li><a href="http://c.biancheng.net/view/3171.html" title="Docker Compose安装教程（包含多个平台）">Docker Compose安装教程（包含多个平台）</a></li>
<li><a href="http://c.biancheng.net/view/3828.html" title="用户如何使用云服务产品？">用户如何使用云服务产品？</a></li>
<li><a href="http://c.biancheng.net/view/4171.html" title="python不是内部或外部命令的解决方法">python不是内部或外部命令的解决方法</a></li>
<li><a href="http://c.biancheng.net/view/4373.html" title="MyBatis一对多关联查询（级联查询）">MyBatis一对多关联查询（级联查询）</a></li>
<li><a href="http://c.biancheng.net/view/6131.html" title="PHP函数参数的传递">PHP函数参数的传递</a></li>
<li><a href="http://c.biancheng.net/view/7896.html" title="jQuery html()和text()方法的区别">jQuery html()和text()方法的区别</a></li>
<li><a href="http://c.biancheng.net/view/vip_8366.html" title="实际应用中，如何将MySQL数据库迁移到其它机器？">实际应用中，如何将MySQL数据库迁移到其它机器？</a></li>
<li><a href="http://c.biancheng.net/ml_alg/sklearn-logistic.html" title="sklearn应用Logistic回归算法">sklearn应用Logistic回归算法</a></li>
</ul>
</div>
		</div>
		
	</div>
</div>
<script type="text/javascript">
// 当前文章ID
window.arcIdRaw = 'a_' + 8118;
window.arcId = "ee07nlSo3E/T57LTxxES//KHeb/yZMs3jDUBHyAVuRto7QLgdbAI1y77XWQ";
window.typeidChain = "117|79";
</script>
<div id="footer" class="clearfix">
	<div class="info left">
	<p>精美而实用的网站，分享优质编程教程，帮助有志青年。千锤百炼，只为大作；精益求精，处处斟酌；这种教程，看一眼就倾心。</p>
	<p>
		<a href="http://c.biancheng.net/view/8066.html" target="_blank" rel="nofollow">关于网站</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8092.html" target="_blank" rel="nofollow">关于站长</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8097.html" target="_blank" rel="nofollow">如何完成一部教程</a> <span>|</span>
		<a href="http://c.biancheng.net/view/8093.html" target="_blank" rel="nofollow">联系我们</a> <span>|</span>
		<a href="http://c.biancheng.net/sitemap/" target="_blank" rel="nofollow">网站地图</a>
	</p>
	<p>Copyright ©2012-2021 biancheng.net, <a href="http://www.beian.miit.gov.cn/" target="_blank" rel="nofollow" style="color:#666;">陕ICP备15000209号</a></p>
	</div>
	<img class="right" src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/logo_bottom.gif" alt="底部Logo">
	<span id="return-top"><b>↑</b></span>
</div>

<script type="text/javascript">
window.siteId = 4;
window.cmsTemplets = "/templets/new";
window.cmsTempletsVer = "1.6.72";
</script>

<script src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/jquery1.12.4.min.js.下载"></script>
<script src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/common.js.下载"></script>
<span style="display:none;"><script src="./1.20目前主流的Java Web开发框架，初学者一定要了解！_files/z_stat.php" type="text/javascript" defer="defer" async="async"></script></span>

</body></html>